#!usr/bin/env python  
# -*- coding:utf-8 _*-
""" 
@author:pengfeifu
@file: 插入排序.py 
@software:PyCharm
@time: 2021/11/16 下午10:47
@email:1324734112@qq.com
@desc： 插入排序
场景：对n张牌进行大小顺序排序，从小到大
手里一张排，每次摸一张牌，跟手里最后一张牌比较，
    1。如果摸的牌大于或者等于手中的牌，往后插入一张牌
    2。如果摸的牌小于手中的牌，大的牌往后挪动一位，
        继续将摸的牌跟前面一张牌大小比较，

@function：常用函数
"""


def insert_sort(li):
    for i in range(1, len(li)):  # i指的是摸到的牌下标
        j = i - 1  # j指的是手里的牌下标
        temp = li[i]  # 摸到的牌
        # 如果手里的牌大于摸到的牌，手里的牌向前挪动一张，
        #   依次比较前面一张牌，直到摸到的牌大于手里的牌，或者摸到的牌到了到了头部（-1位置）
        while j >= 0 and li[j] > temp:
            li[j + 1] = li[j]
            j -= 1
        li[j + 1] = temp
        print(li)


if __name__ == "__main__":
    insert_sort([3, 4, 1, 2, 5, 7, 6, 9, 8, 0])
